【精选】Hive实战

您所在的位置:网站首页 hive 累加 窗口函数 【精选】Hive实战

【精选】Hive实战

2023-10-19 19:59| 来源: 网络整理| 查看: 265

关注公众号:大数据技术派,回复资料,领取1024G资料。

时间滑动计算

外部调用实现时间循环

自关联实现滑动时间窗口

扩展基于自然周的的滚动时间窗口计算

总结

时间滑动计算

今天遇到一个需求大致是这样的,我们有一个业务涉及到用户打卡,用户可以一天多次打卡,我们希望计算出7天内打卡8次以上,且打卡时间分布在4天以上的时间,当然这只是个例子,我们具体解释一下这个需求

用户一天可以打卡多次,所以要求打卡必须分布在4天以上;

7天不是一个自然周,而是某一天和接下来的6天,也就是说时间是是滑动的,窗口大小是7步长是1,说白了就是窗口计算;

其实说到这里你就想到了窗口函数,虽然这是一个窗口;但是hive却没有相应的窗口函数可以计算,接下来我们看一下怎么实现这个逻辑。

外部调用实现时间循环

我们可以先写这样的一个SQL,就计算每个人在特定时间内是否满足我们的条件,我们先计算出每个人每天的打卡次数,例如这里我们的时间限制是'20210701' 到'20210707'

select      b.union_id,to_date(ds,'yyyymmdd') as dt,count(1) as cnt   from     ods_la_daily_record_di b   where     -- 驱动表的时间限制     b.ds>='${bizdate}'     and b.ds


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3